package com.yun.zf.common.esIndex;

import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import java.math.BigDecimal;

@Data
@Document(indexName = "house_rent_index", shards = 1, replicas = 0)
public class HouseRentIndexTemplate {
    @Id
    private Long hid;  // 房源id
    @Field(type = FieldType.Long)
    private Long provinceCode;  // 省级区划代码
    /**
     * 城市编码
     */
    @Field(type = FieldType.Long)
    private Long cityCode;

    /**
     * 区域编码，可使用高得提示查询返回的
     */
    @Field(type = FieldType.Long)
    private Long regionCode;
    /**
     * 街道区划代码
     */
    @Field(type = FieldType.Long)
    private  Long streetCode;
    // 市级名称
    @Field(type = FieldType.Keyword)
    private String cityName;

    // 区域名称
    @Field(type = FieldType.Keyword)
    private String regionName;

    // 街道名称
    @Field(type = FieldType.Keyword)
    private String streetName;
    /**
     * 小区编号id
     */
    @Field(type = FieldType.Long)
    private Long communityId;
    // 小区名称
    @Field(type = FieldType.Text,analyzer = "ik_smart",searchAnalyzer = "ik_smart")
    private String community;
    //房屋状态 checking-待实勘 supplement-待完善 published-已上架 off-下架，rented-已出租、sold-已售出、
    @Field(type = FieldType.Keyword)
    private String status;
    // 数据来源
    @Field(type = FieldType.Keyword)
    private String source;
    //类型，1整租，2 合租 3 公寓 4、二手房、5新房 6、商铺出租、7商铺出售 8、写字楼出租 9 写字楼出售
    @Field(type = FieldType.Integer)
    private Integer type;
    // 租金
    @Field(type = FieldType.Double)
    private BigDecimal hopedPrice;

    /**
     * house_detail 表信息
     */
    // 面积--
    @Field(type = FieldType.Double)
    private BigDecimal area;
    //户型 1居室，两居室
    @Field(type = FieldType.Integer)
    private Integer bedrooms;
    // 楼层--
    @Field(type = FieldType.Integer)
    private Integer floor;
    // 楼层范围，低楼层--
    @Field(type = FieldType.Keyword)
    private String floorTag;
    // 朝向--
    @Field(type = FieldType.Keyword)
    private String direction;
    /**
     * 是否有电梯，0有，1 无
     */
    @Field(type = FieldType.Integer)
    private Integer isElevator;


    // 房源编号
    @Field(type = FieldType.Keyword)
    private String houseNumber;
    @Field(type = FieldType.Keyword)
    private String priceUnit;

    @Field(type = FieldType.Keyword)
    private String title;

    /**
     * ZfHouseInfo表信息
     */

    /**
     * 房源装修情况,mp 毛坯，jian 简装，jing 精装，hz 豪华装修
     */
    @Field(type = FieldType.Keyword)
    private String fixtures;
    /**
     * 装修年份
     */
    @Field(type = FieldType.Integer)
    private Integer fixturesYear;
    /**
     * 房源标签
     */
    @Field(type = FieldType.Keyword)
    private String tags;

    @Field(type = FieldType.Keyword)
    private String isRecommend;


    /**
     * zf_house_info_rent 表信息
     */
    /**
     * 最小租期要求起期 ，比如最低租一个月，最高3月  1~3（leaseEnd）
     */
    @Field(type = FieldType.Integer)
    private Integer leaseStart;

    /**
     * 租期要求止期
     */
    @Field(type = FieldType.Integer)
    private Integer leaseEnd;
    /**
     * 租期单位，月，年
     */
    @Field(type = FieldType.Keyword)
    private String unit;


    @Field(type = FieldType.Double)
    private BigDecimal score;

    // 房源出租方式
    @Field(type = FieldType.Integer)
    private int rentType;

}
